//#################################################
// 版权所有：鸽子游戏俱乐部
// 系统名称：鸽子游戏俱乐部-移动版
// 文件名称：resetPwdAction.js
// 创建时间：2016年10月18日
// 创建人员：Lemo
// 功能说明：resetpwd action
//#################################################

'use strict';

import * as types from './types';

import CommonFunc from '../common/commonFunc';
import * as ResetPwdService from '../services/resetPwdService';

function resetPassword(originpwd, newpwd, dcheckpwd) {
    return dispatch => {
        let validateResult = validate(originpwd, newpwd, dcheckpwd);
        if ( !validateResult.result ) {
            dispatch(validateFailed(validateResult.msg));
        }
        else {
            //服务调用
            ResetPwdService.resetPwd(originpwd, newpwd, dcheckpwd)
            .then((responseData) => {
                if(responseData.code=='200'){
                    dispatch(resetSuccess());
                }
            },
            (responseData) => {
                if (responseData.code!='200') {
                    dispatch(resetFailed(responseData.message));
                }
            })
            .catch((error) => {
                dispatch(resetFailed(error));
            });
        }
        
    };
}

function resetSuccess() {
    return {
        type: types.MY_RESETPWD_RESET_SUCCESS,
    };
}

function resetFailed(error) {
    return {
        type: types.MY_RESETPWD_RESET_FAILED,
        msg: error,
    };
}

function validate(originpwd, newpwd, dcheckpwd) {
    if (CommonFunc.isEmpty(originpwd)) {
        return {
            result: false,
            msg: '请输入原密码'
        };
    }

    if (CommonFunc.isEmpty(newpwd)) {
        return {
            result: false,
            msg: '请输入新密码'
        };
    }

    if (CommonFunc.isEmpty(dcheckpwd)) {
        return {
            result: false,
            msg: '请确认密码'
        };
    }

    // let newPwdReg = new RegExp('^(?=.*[0-9].*)(?=.*[a-zA-Z].*).{8,20}$');
    // if (!newPwdReg.test(newpwd)) {
    //     return {
    //         result: false,
    //         msg: '新密码不符合要求'
    //     }
    // }

    if (newpwd !== dcheckpwd) {
        return {
            result: false,
            msg: '两次新密码不一致'
        }
    }
    return {
        result: true,
        msg: ''
    };
}

function validateFailed(error) {
    return {
        type: types.MY_RESETPWD_VALIDATE_FAILED,
        msg: error
    };
}

module.exports = {
    resetPassword
};